home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / applications / 579 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.9 KB

  1. Path: walrus.megabaud.fi!not-for-mail
  2. From: petrin@walrus.megabaud.fi (Petri Nordlund)
  3. Newsgroups: comp.sys.amiga.applications
  4. Subject: Re: Executive Probs with Maple
  5. Date: 13 Jan 1996 20:13:39 +0200
  6. Organization: Megabaud Oy,Helsinki,Finland
  7. Message-ID: <4d8soj$a8i@walrus.megabaud.fi>
  8. NNTP-Posting-Host: walrus.megabaud.fi
  9.  
  10. W.G.J. Langeveld <wglp09@scsa1.slac.stanford.edu> writes:
  11. >> >Having said that, if there's a way we can make Executive happy in an upcoming
  12. >> >patch of (that is, if there will be one) Maple without compromising running
  13. >> >without Executive, then we will likely do so.
  14. >>
  15. >>   Yes there is, the Maple<-->MaplePlot3D interface should be fixed so that
  16. >>   it would work regardless of task priorities. I wonder why the MaplePlot3D
  17. >>   task was given priority -24 in the first place?
  18. >
  19. >My guess is that Executive sets it that way. Here's why I think so.
  20. >I call SystemTags() with just enough parameters to run the plotter. I do not
  21. >specify a priority, because SystemTags is documented as setting the priority
  22. >to the same value as the task calling it, which is precisely what I want: I
  23. >want the main Maple program and the plotter to get equal CPU time. And that
  24. >single call to SystemTags() is all that happens. There's no task priority
  25. >setting anywhere else in Maple. If that's not "compatible with system legal
  26. >software" then I don't know what is.
  27.  
  28.   I have tested Executive only with Maple 1.0, may something was
  29.   changed in later versions?
  30.  
  31. >Here's my guess at what happens: Assume Maple gets started at priority 0.
  32. >Now, someone wants to plot something. Maple needs to do a bunch of calculations
  33. >before it is ready to spawn the plotter. By that time, perhaps, Executive has
  34. >set Maple's priority down to -24, to give other tasks (if any) a chance to
  35. >work. And, perhaps, Maple executes the SystemTags call for some reason not
  36. >at priority 0 as it otherwise would but still at priority -24. And so, the
  37. >base priority of the plotter becomes -24, and assuming that Executive will
  38. >never let any task get a priority higher than its base priority, the plotter
  39. >will essentially never run. If my guess is correct, then it's clearly a bug
  40. >in Executive: it should start tasks spawned by other tasks at the same *base*
  41. >priority as the parent task, not at the *current* priority of the parent task.
  42.  
  43.   I know this problem and in AddTask() Executive checks if the parent
  44.   task is scheduled, and if the new task has same priority, it will be
  45.   given the parent task's real priority. The scheduler will adjust the
  46.   priority later, but Executive remembers correct task priorities and
  47.   can restore them when it quits.
  48.  
  49.   If the MaplePlot3D task would get its priority (-24) from the
  50.   parent task, then the parent task should also have priority -24,
  51.   but it doesn't, it is 0.
  52.  
  53.   Anyway, the MaplePlot3D task gets priority -24 even without Executive.
  54.   I tried booting without startup-sequence and then started Maple, and
  55.   the priority was -24. The system was totally clean, no other programs,
  56.   not even SetPatch was run.
  57.  
  58.   I did some testing, and when AddTask() is called, the priority in the
  59.   task structure is already set to -24.
  60.  
  61. >By the way, if a user did not run Executive, and if the user just set the
  62. >priority of Maple to something else, everything would continue to work:
  63. >the plotter would still be started up at the same priority as Maple itself,
  64. >if the plotter wasn't running yet. And if the plotter were already running
  65. >and the user set Maple's priority higher then the plotter's, then the user
  66. >would get the completely expected result that the plotter wouldn't run very
  67. >well. My answer would simply be: don't do that.
  68.  
  69.   But if user lowers Maple's priority below the plotter's, the plotter
  70.   will not work anymore.
  71.  
  72. -- 
  73.                                       __
  74.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~///~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  75.        Petri Nordlund             __///         petrin@megabaud.fi
  76.  ---------------------------------\XX/----------------------------------
  77.